<?php
// --------------------------------------------------------- //
// SYE (System editor)
// --------------------------------------------------------- //
// part of daryo pigment 3.7
// --------------------------------------------------------- //
// Copyright (C) 2004,2010 Sébastien Fauconnet
// http://pigment.daryo.net/
// --------------------------------------------------------- //



if ($_GET['UI'] == "img") die (sye_img());
if ($_GET['UI'] == "css") die (sye_css());

header('Content-type: text/html; charset="UTF-8"');
session_start();

$domaine= $_SERVER["SERVER_NAME"];
$absolu=$_SERVER["DOCUMENT_ROOT"].'/';

// -----------------------INSTALL--------------------------- //
// This is the only thing you have to modify to install this
// script.
//
// Just write down your password here, and upload this file
// on your server.
// --------------------------------------------------------- //
$password="foobar";
// --------------------------------------------------------- //

if (isset($_GET['t'])) $currentfile= ' '.$_GET['t'];
else $currentfile='';

$header = '<html><head><title>sye'.str_replace('/','::',$_GET['p']).$currentfile.'</title><link href="'.$_SERVER['PHP_SELF'].'?UI=css" rel="stylesheet" type="text/css" /></head><body><ul><a href="'.$_SERVER['PHP_SELF'].'"><img src="'.$_SERVER['PHP_SELF'].'?UI=img"></a></ul><p/>';

$footer .= '</body></html>';

if ($_SESSION['logattempt'] > 3) die ($header.deny_pane().$footer);

if ($_GET['auth'] == "check") die ($header.check_auth($_POST,$password).$footer);

if ($_SESSION['sye_user'] != "accgran") $buffer = authentication_pane();
else $buffer = proceed_pane($_GET);

die($header.$buffer.$footer);



// --------------------------------------------------------- //




// authentication_pane()
// check_auth()
// deny_pane()
// proceed_pane()
// navbar()

// item_size()
// size_converter()

// display_navigator();

//						['a=']
// directory_create()		rc	
// document_create()		dc	
// document_send()		ds
// document_edit			de
// item_delete_confirm()	id
// item_delete_proceed()	ip
// item_rename_form()	if
// item_rename_proceed()	ir

// sye_css()
// sye_img()





// -------------------------------------------------------- //
function authentication_pane() {
// --------------------------------------------------------- //

return '<div class="infobar"><form name="authentication" method="post" action="'.$_SERVER['PHP_SELF'].'?auth=check">Password:<input type="password" name="pass" size="20"><input type="submit" value="OK"></div>';
}


// --------------------------------------------------------- //
function check_auth($post,$password) {
// --------------------------------------------------------- //

if ($post['pass'] == $password) {
	$_SESSION['sye_user'] = "accgran";
	return proceed_pane($_GET);
}

else {
	if (!isset($_SESSION['logattempt'])) $_SESSION['logattempt']= "1";
	else $_SESSION['logattempt']++;
	return authentication_pane();
}

}

// --------------------------------------------------------- //
function deny_pane() {
// --------------------------------------------------------- //

return '<div class="errorbar">Too much loosy attempts, check back later.</div>';

}


// --------------------------------------------------------- //
function proceed_pane($get) {
// --------------------------------------------------------- //

if ($_GET['p']=="../" || $_GET['p']=="/" || $_GET['p']=="//" || $_GET['p']==" ") $current_path="";
else $current_path = $_GET['p'];

$current_action=$_GET['a'];

switch($current_action) {
	case "ds": return document_send($current_path,$_GET);
	break;

	case "rc": return directory_create($current_path,$_GET);
	break;

	case "dc": return document_create($current_path,$_GET);
	break;

	case "id": return item_delete_confirm($current_path,$_GET);
	break;

	case "ip": return item_delete_proceed($current_path,$_GET);
	break;

	case "if":return item_rename_form($current_path,$_GET);
	break;

	case "ir":return item_rename_proceed($current_path,$_GET);
	break;

	case "de": return document_edit ($current_path,$_GET);
	break;

	default : return display_navigator ($current_path);
}
}

// --------------------------------------------------------- //
function navbar($current_path) {
// --------------------------------------------------------- //
$path_elements = explode('/',$current_path);
$formatted_path='';
$path_elements = array_splice($path_elements,1,(count($path_elements)-2));
$temp_url='/';
foreach ($path_elements as $elements) {
	$temp_url .= $elements.'/';
	$formatted_path .= '<a href="?p='.$temp_url.'">'.$elements.'</a> &#8226; ';
}

$formatted_path = substr($formatted_path,0,(strlen($formatted_path)-8));

return '<a href="'.$_SERVER['PHP_SELF'].'">'.$_SERVER["SERVER_NAME"].'</a> &#8226; '.$formatted_path;
}

// --------------------------------------------------------- //
function item_size($current_path) {
// --------------------------------------------------------- //

$handle = opendir ("$current_path");
$file = readdir ();
while ($file != "" ) {
	if ( $file != ".." && $file != "." && $file != "" ) {
		$taillerep+=filesize("$current_path$file");
		if ( fileType ( "$current_path$file" ) == "dir" ) {
			closedir ();
			$taillerep+=item_size ("$current_path$file/");
			opendir ( $current_path );
			$file2 = readdir ();
			while ( $file2 != $file ) {
				$file2 = readdir ();
			}

		}
	}
	$file = readdir ();
}
closedir ();

return $taillerep;
}

// --------------------------------------------------------- //
function size_converter($givensize) {
// --------------------------------------------------------- //

if (!$givensize) $givensize=0;
$givensizeko1=$givensize/10.24;
$givensizeko2=floor(($givensize/1024))*100;
$givensizeko3=$givensizeko1-$givensizeko2;
$givensizeko3 = floor($givensizeko3);
if ($givensizeko3<10) $givensizeko3="0".$givensizeko3;
$givensizeko4= floor($givensize/1024);
$givensizeko= "".$givensizeko4.",".$givensizeko3;
$givensizemo1=$givensize/10485.76;
$givensizemo2=floor($givensize/1048576)*100;
$givensizemo3= $givensizemo1-$givensizemo2;
$givensizemo3 = floor($givensizemo3);
if ($givensizemo3<10) $givensizemo3="0".$givensizemo3;
$givensizemo4=floor($givensize/1048576);
$givensizemo= "".$givensizemo4.",".$givensizemo3;
if ($givensize==0) $s=""; else $s="s";
if ($givensizemo1>100) $texte="$givensizemo Mo";
elseif ($givensizeko1>100) $texte= "$givensizeko Ko";
else $texte="$givensize o";
return $texte;
ClearStatCache();
}


// --------------------------------------------------------- //
function display_navigator($current_path) {
// --------------------------------------------------------- //
global $buffer, $absolu, $domaine;
ClearStatCache();
opendir("$absolu$current_path");
$dir = readdir();

while($dir) {
	if (($dir != ".") && ($dir != "..")) {
		if (filetype("$absolu$current_path$dir") == "dir") $dira[] = $dir;
		else $dirb[] = $dir;
	}
	$dir = readdir();
}

closedir();

$col=0;

$taille=size_converter(item_size("$absolu$current_path"));

$chem=(dirname($current_path)==".")? "/" : dirname($current_path)."/";

if (empty($current_path)) $is_root='/';
else $is_root='';

$buffer .= '<div class="infobar"><div class="bar_left_item">'.navbar($current_path).'</div><div class="bar_right_item">'.$taille.'</div></div>';

if ($dira) {
	sort ($dira);
	$i=0;
	while ($i < count($dira)) {
		$encode=urlencode($dira[$i]);
		$buffer .= '<div class="file_list_bar_'.($col%2).'">
<div class="file_list_icons">-</div>
<div class="file_list_icons"><a href='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=if&t='.$encode.'>R</a></div>
<div class="file_list_icons"><a href='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=id&t='.$encode.'>D</a></div>
<div class="file_list_filename"><a href='.$_SERVER['PHP_SELF'].'?p='.$is_root.$current_path.$dira[$i].'/><b>'.$dira[$i].'</b></a></div>
<div class="file_list_size">'.size_converter(item_size("$absolu$current_path$dira[$i]/")).'</div>
<div class="file_list_date">'.date("d/m/Y H:i",filemtime("$absolu$current_path$dira[$i]")).'</div>
</div>';
		$i++;
		$col++;
	}
}

if ($dirb) {
	sort ($dirb);
	$i=0;
	while ($i < count($dirb)) {
		$encode=urlencode($dirb[$i]);
		$buffer .= '
<div class="file_list_bar_'.($col%2).'">
<div class="file_list_icons"><a href='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=de&t='.$dirb[$i].'>&eacute;</a></div>
<div class="file_list_icons"><a href='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=if&t='.$encode.'>R</a></div>
<div class="file_list_icons"><a href='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=id&t='.$encode.'>S</a></div>
<div class="file_list_filename"><a href="'.$current_path.$dirb[$i].'" target="_blank">'.$dirb[$i].'</a></div>
<div class="file_list_size">'.size_converter(fileSize("$absolu$current_path$dirb[$i]")).'</div>
<div class="file_list_date">'.date("d/m/Y H:i",fileMtime("$absolu$current_path$dirb[$i]")).'</div>
</div>';
		$i++;
		$col++;
	}
}

$buffer .= '<div class="infobar">&nbsp;</div>';

$buffer .=  '<div class="file_list_bar_0">
<div class="file_list_tools"><form  action="'.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=ds" method="POST" enctype="multipart/form-data" >
<input name="userfile" type="file" size="25">
<input TYPE=submit value="Send File"><input type="hidden" name="act" value="ds">
</form></div>

<div class="file_list_tools"><form  action="'.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=dc" method="POST">
<input name="r" type="text" size="25" >
<input TYPE="submit" value="Create Document"><input type=hidden name="act" value="dc">
</form></div>

<div class="file_list_tools"><form  action="'.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=rc" method="POST">
<input name="r" type="text" size="25" >
<input TYPE="submit" value="Create Directory"><input type=hidden name="act" value="rc">
</form></div>';

return $buffer;
}


// --------------------------------------------------------- //
function directory_create($current_path, $get) {
// --------------------------------------------------------- //

global $absolu;

if (file_exists($current_path.$_POST['r'])) { 
	$buffer .='<div class="errorbar">Directory "'.$_POST['r'].'" already exists.</div>';	
}

else {
	MkDir($absolu.$current_path.$_POST['r'],0755);
	$buffer .='<div class="warningbar">Directory "'.$_POST['r'].'" have been created.</div>';	
}

return $buffer.display_navigator ($current_path);

}


// --------------------------------------------------------- //
function document_create($current_path, $get) {
// --------------------------------------------------------- //

global $absolu;
if (file_exists($current_path.$_POST['r'])) { 
	$buffer .='<div class="errorbar">File "'.$_POST['r'].'" already exists.</div>';	
}
else {
	$fp = fopen($absolu.$current_path.$_POST['r'],"w") ;
	fputs($fp,"") ;
	fclose($fp) ;
	$buffer .='<div class="warningbar">File "'.$_POST['r'].'" have been created.</div>';	
}

return $buffer.display_navigator($current_path);
}


// --------------------------------------------------------- //
function document_send($current_path, $get) {
// --------------------------------------------------------- //

global $absolu;
$userfile_name = $_FILES['userfile']['name'];
$userfile = $_FILES['userfile']['tmp_name'];
if ( !strstr($userfile_name, "..") && !strstr($userfile_name, "/") ) {
	$dest="$absolu$current_path$userfile_name";
	if (@copy($userfile, $dest)) $buffer='<div class="warningbar">'.$userfile_name.' uploaded</div>';
	else $buffer='<div class="errorbar">'.$userfile_name.' upload failed</div>';
	@unlink($userfile);
}
else $buffer='<div class="errorbar">'.$userfile_name.' upload failed</div>';

return $buffer.display_navigator ($current_path);
 
}

// --------------------------------------------------------- //
function document_edit($current_path, $get) {
// --------------------------------------------------------- //

	global $maj,$tx_edi, $buffer, $absolu, $domaine;
	$edi=$get['t'];

if (empty($current_path)) $is_root='';
else $is_root=' &#8226; ';

	if (isset($_POST['maj']))
	{
		$tx_edi = ereg_replace("&lt;","<",$tx_edi) ;
		$tx_edi = ereg_replace("&gt;",">",$tx_edi) ;

		$fp = fopen("$absolu$current_path$edi","w") ;
		fputs($fp,stripslashes ($_POST['tx_edi'])) ;
		fclose($fp) ;
		$pre_save .= 'document saved @'.date("G:i:s");
	}

	$taille=size_converter(fileSize("$absolu$current_path$edi"));

	$buffer .= '<div class="infobar"><div class="bar_left_item">'.navbar($current_path).$is_root.'<b>'.$edi.'</b></div><div class="bar_right_item">'.$taille.'</div><form  action='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=de&t='.$edi.' method=POST>
';

	$fp = fopen("$absolu$current_path$edi","r");
	$tx_edi="";
	while(!feof($fp))
		{
		$Ligne   = fgets($fp,1024);
		$tx_edi .= $Ligne;
		}
	fclose($fp);
	
	$buffer .= '
		<TEXTAREA name="tx_edi">'.htmlspecialchars($tx_edi, ENT_NOQUOTES).'</textarea>
		<input name="maj" type=submit value="save"><br/>'.$pre_save.'</div>';
return $buffer;
}


// --------------------------------------------------------- //
function item_delete_confirm($current_path,$get) {
// --------------------------------------------------------- //

return '<div class="infobar"><div class="bar_left_item">'.navbar($current_path).$is_root.'<b>'.$edi.'</b></div><div class="bar_right_item">'.$taille.'</div></div><div class="warningbar">You are about to delete:'.$get['t'].'<br/>Do you want to proceed ?<br/><br/><a href='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=ip&t='.$get['t'].'>Yes</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?p='.$current_path.'">No</a></div>';

}

// --------------------------------------------------------- //
function item_delete_proceed($current_path,$get) {
// --------------------------------------------------------- //

global $absolu;
$detr=$get['t'];


if ($detr!="") {
	if (filetype("$absolu$current_path$detr") == "dir") {
		opendir("$absolu$current_path$detr");
		$dirz = readdir();
		while($dirz) {
			if (($dirz != ".") && ($dirz != "..")) $diraz[] = $dirz;
			$dirz = readdir();
		}
		closedir();
		if ($diraz) $buffer .= '<div class="errorbar">Directory "'.$detr.'" is not empty</div>';
		else {
			RmDir("$absolu$current_path$detr");
			$buffer .= '<div class="errorbar">Directory "'.$detr.'" have been deleted</div>';
		}
	}
	else {
		unlink ("$absolu$current_path$detr");
		$buffer .= '<div class="errorbar">File "'.$detr.'" have been deleted</div>';
	}
}
return $buffer.display_navigator ($current_path);
}


// --------------------------------------------------------- //
function item_rename_form($current_path,$get) {
// --------------------------------------------------------- //
return  '<div class="infobar"><div class="bar_left_item">'.navbar($current_path).$is_root.'<b>'.$edi.'</b></div><div class="bar_right_item">'.$taille.'</div></div><div class="warningbar"><form  action='.$_SERVER['PHP_SELF'].'?p='.$current_path.'&a=ir&t='.$get['t'].' method="POST"><input type="text" size="25" name="r" value="'.$get['t'].'">
<input type="submit" value="rename"></form></div>';
}


// --------------------------------------------------------- //
function item_rename_proceed($current_path,$get) {
// --------------------------------------------------------- //

global $absolu;
rename($absolu.$current_path.$get['t'] , $absolu.$current_path.$_POST['r']);
return $buffer.'<div class="warningbar">Renamed "'.$get['t'].'" to "'.$_POST['r'].'" </div>'.display_navigator ($current_path);
}


// --------------------------------------------------------- //
function sye_css() {
// --------------------------------------------------------- //

header("Content-type: text/css");
return 
'
body {
	margin:3%;
	font-family: "Bitstream Vera Sans", Century Schoolbook, Verdana;
	font-size: 9pt;
	color: rgb(12,45,10);
	background-color:rgb(255,255,255);
}

a {color:rgb(55,52,175);}

input,textarea,select {
	display:block;
	border-color: inherit;
	color: inherit;
	margin:1px;
	border: 1px solid;
	height: 1.8em;
	background-color: inherit;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
}

textarea {
	width: 97%;
	margin: 1%;
	height:400px;
}

hr {
	width:90%;
	height: 1px;
}

.warningbar, .errorbar, .infobar, .file_list_bar_0, .file_list_bar_1 {
	position:relative;
	align:center;
	padding: 0.5%;
	width:90%;
	border-radius: 11px;
	-webkit-border-radius: 11px;
	-moz-border-radius: 11px;
}

.warningbar{background-color:rgb(235,232,125); color:rgb(85,82,25);}
.errorbar{background-color:rgb(235,52,75); color:rgb(85,2,25);}
.infobar {background-color:rgb(215,232,245); color:rgb(55,52,75);}
.file_list_bar_1{padding:0.3%; margin-bottom: 0.3%; background-color:rgb(250,247,250); color:rgb(55,52,75);}
.file_list_bar_0{padding:0.3%; margin-bottom: 0.3%; background-color:rgb(255,252,255); color:rgb(55,52,75);}


.bar_left_item, .bar_right_item, .file_list_icons, .file_list_filename, .file_list_size, .file_list_date, .file_list_tools {
	display: inline-block;
	display:-moz-inline-stack;
}

.bar_left_item {width:70%;}

.bar_right_item {
	width:30%;
	align: right;
	text-align: right;
}

.file_list_icons {
	width:5%;
	align: center;
	text-align: center;
}

.file_list_filename {
	width:40%;
	align: left;
	text-align: left;
}

.file_list_size {
	width:15%;
	align: right;
	text-align: right;
}

.file_list_date {
	width:20%;
	align: center;
	text-align: center;
}

.file_list_tools {
	width:30%;
	align: left;
	text-align: left;
}

';
}



// --------------------------------------------------------- //
function sye_img() {
// --------------------------------------------------------- //

header("Content-type: image/png");
return base64_decode("iVBORw0KGgoAAAANSUhEUgAAAGoAAAA7CAYAAACT8x/FAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAGKgAABioBRGS1VAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAABUWSURBVHic7Vx5lBxVuf/dW9U1Pd2TSWeZAQJZIBAwGAhzJ6C4gT7OETn6cAERVHA9gjxBD7i8h6g89LDJE0REBOQdFwQeKKD4FJA8kCVLTaKBQSAm05PZenqbru6uve73/qiqnM4w+0xCQH7n9Enq1t2++e699X2/76tiRIRZggE4JAiCY1zXfScAwRhbwhhLMsY0AEREDhGZRPS8oih/1jTtSQAvAZCzHXwfQ0Eo6yoAmqIoWQB9AEb29sBspoqSUh5p2/aliqK8B8B8ItIQKm3yQRlzAVSCIHha07SLVFXNz2gS+wZNtm1/hojO5ZwfAqA5khUAfMaYI6XcnEgkblBV9VHspcU3XUVxz/NO8TzvUkVRRMOE94AfwpMhiDEGzjlXFEVJJBIaY2y3Qomo5jjOdzOZzI2zFWaOkbIs64uMsS8AOACTL8KAiJ5qbm4+B0BpriczZUX5vn+Q53kPMMbeBIDH5VJKaZqmadu2Zdu2bZqm7XmeP14/iqLwVCrVnE6nU83NzalkMtnMOYeU8q5UKvW52Ys0e9i2vZaI7mWMLYnLiAiu69pOCNdxHAcANE3TmpqatJaWlnmKoigABhKJxEmKovTP5ZympCjbto8hogcYY+1xmed5bqlUKpfL5ZEgCCQAF0APgO0AsgA8AITwKCAA8wAcA+DNANJxP6qqKu3t7YszmUwrgPc1Nzc/NWfSzQCmaX6Cc349gBQQPmCr1aqRz+eLtm0747XjnPMFCxa0Ll68uI1z/mIqlXobwr/BnGBSRZmm+T7O+c8AtACAZVlmsVgsViqVGoAKgD8C+D2AvwshgskG1HWdA1gJ4KMAPoBod6bT6ea2tranFi1a9PnZCDQBWgEsB9CPcY4m0zS/zzn/LAAVAAzDqAwPDxccx3EBvADgfoQLcQeAJgAd0e90ABoAJBIJdenSpYcoinJja2vrFXM1+QkVVa1W1yUSiT/FkyiXy6WBgYEcgDyA6wGsF0LMeNXoun4BgE/H14qi3L927drvzbS/sWDb9mlEdDnn/FAi0hhjVSL6ajKZvKuxXq1Wu0xV1a8j/JtQLpcbKhaLIwBeBvBjIcQTE8jRAeAHiHYhY4wtW7bMXbx48VvnSg4+wT3GOb8VgBZNPBcp6TEAHxVCPDIbJUV4rPEiCAJrlv01Imma5gMA7mKMvZmI0gASRLQwCIKrGyvW6/VTVVW9BADzfd/PZrPZSEkPAzh3IiUBgBCiC8CX4msiosHBwVQ2m102V8Ko490olUqnpVKpVURE/f39fdFR92shxHVzNTiAfwDoQnh8GAB+MUf9qvV6/SFFUU6MCxzHcSzLMj3P8zRNo3Q6HZcfyjm/A0DC8zxv586dPZEx9BMhxE+nOqAQYquu68MA2gHAdV2vUCjMX758+dwINN4Nxtg5AFAsFguRkvIAbp7tgK7rrpNSvktKuWL16tVLgyDY8OKLL14FoFcIMa61OA2wWq12l6qqJwKh0TM0NJQzDKPWUOfZAw44AAh30H2KorRKKWVfX19fpKSfTkdJAGDbdlN7e3vb8PBwY3HTbIWJMa6iFEU5xvM8b3h4uBhd37l27VpztgNWKpWLiejdpmnWPc/zgyDoFkLsmG2/MWq12i2qqp4KAKZp1rPZ7C4p5egH8T0AYBjGpzVNWwUAQ0NDQ6Zp2gCeBHDrdMf1PO+KhQsXHjk8PPxSVEQA/j5jQUZh3GeU67rDhmEYFFkbmUzmolKptGa2A/q+/1xkOY4YhlGr1+vzZ9tnjGq1eqWqqucAYLZtW729vX1jKGkAwF8AaKqqXgaAlUI/owJgF4BvCiGmwwLwer1+fSKROD9y6OPFv0UIUZuw5XQGGe+G4zhfNwxjN4dlGEYqmUyur1QqdzmOc/RMB7Rte6OmaY2Mxpwc4oZhvCuRSHwJAHNd18lms7uCIKghXNmN+B8hhBwZGfky57zd8zxvaGgoPq+uncYft9WyrIsty9qmKMrnASiWZVkNzv5NcyDWboyrqIMPPniDaZp3xtee5/mFQqHS1NT0ASJ61rKsbK1W+71pmpcAOBaRCT8ZSqXS5siDj9Gu63pypgJE0BRFuRWA4nme19PT0+v7fuyAN1I/LoAHAEBRlLMAIJ/P56NT4xkhxNNj9K0CmA9gRRAE77cs6zrLstY7jvMiY+y7jLEViKzFwcHBoajNz4QQf5ulTK+YxET4CULn9AQAyOfzJSKiRYsWLVZVdbGqqicBOMm27W8yxmpSyu0ANmia9piiKE8CeMUzTQhRyeVyjWY4A7AMIZs+IxiGcY2maYdIKWVvb29vtKofBnDqqKoPCiEqlUplaVNT0+G2bdvRkRfLCgCo1+sPqqp6FGMsidA94QAUImqKecpG/7Ner9cHBgYGXdf1ANwkhLhzprKMhwkVJYSo67p+IYAzEfoJTYVCoVwqlUYymUxrOp1Op1KptKqqKhFlGGOdADo9z7vA9/1KEARPapp2m6qqjwPYzVowxgoIQwYxVmCGiqpWq8dpmnYeABQKhbxt2y6AzQiZiEb56oiUEQTBFwDwUqkUMxT9Qojn4opBEKxRFKV9IjLA932vVqvVisViOaKWegDcLIT480zkmAyT7ShED9a7dV1/EiHl814p5SGlUqlSKpUqAJBMJptaWlpSseI455yIMpzz9/u+f5rneds0TTtHUZSdkZDbNU17c7QCAaATwJ9mMH8e0VsJ27atfD5fQqiQ+wGMZjhuF0KUAYAxdryUkgzDqEb39hjb932biBwpZRBFAGQQBDIIAt+yLGsU8fwPALcDeFQIsdfia5MqKoYQYgDALQBu0XV9DcLj8BgAa2zbhm3bTqFQKDPGWCqVSra0tKTT6XQ6mUw2M8aO9TzvWcdxLkulUj+t1WoPpFKpzgZFvWUmkzcM43JN044gIhoYGBiMim8H8PFRVfsA7KaMFEVZUq/XaxGZDABbGivv3LlzC4BV4wzbD2Br1GaLECI7k7lPF1NWVCOEENsAbAMAXdcZgMMQ7opOIhL1ep3q9boFoNDIKquqep1pml3VavV/M5lMI2G5RNf1ZUKI3qnOwTTNQxKJxL8BQKlUKlqW5SAkSxcCWD2q+g8a6S5FURbVarVqw/2+UfUfQuisGgiJ5/jfghBizmNNU8GMI7zjIWLHDwdwEkKGfD4QnlHt7e2LMplMLp1On/Dyyy//xjCMQxqaXiOEuGeq41Sr1d8mEolTXNd1tm/fvjOy3H4B4BzsaeltFEJcEF+USqXm5ubmfDabzUaLiQC8TQjhzlTmfYGJSNkZQQghhRAvCSFuBfB+AL8DwgDj0NBQvlwuLzYM4xzXdR/nnDeO/69TnU+1Wn1LIpF4NxFhYGBgMFLSNoTP0EYljQD4dmNb0zRXMMZYFLoAgPL+riRgLyiqEUIIE8AVaHgG5HK50uDgYKtt23/Ans7okdls9vSp9MsY+yEApVqtVqJd4QE4EKGlF4MAfEsIsQf5VqvVeoMgCHzfj63Qluj4ng1Ss2w/KWJFKQAW7I0Bli5depiqqkc1ltVqNV0I8ZKUckNjuWEYpwNYN1F/hmF8XFXVN0U7NFaCCqBtVNWfCyFeES0+6qij6o7jlBuKNMxC9nq9/k7HcV5wHOdTM+1jKuCGYZzuOE6P4zjPm6Z54Rz3n0qn0/cvX758taIo8aKoAtCj/9/eWNl13dXVavVTGH+nJ1RVvQIhP1dsMJFH74htmIDp930/N6roqDErTgLXdd/EOf8VES32ff/aF1544X0z6Wcq4IqiXEdEC4loPoCvzVXHnuctrtfrDyuKslLTNK2BNronDmcIIXQAf21sl8/nT7Rte8zVWalULuOcH+D7vhf5TGMhB+AbE4VMHMfpHlV01pSE2rOPdwRB8ChjbAERUV9f37Bpmlfouj6aDZkTcACtUkpZrVYN0zR5rVY7bpZ9KrZtX+D7/jZFUdYBofkc+UwDAO4YVf8GNOTClctl33Gcr9m2/cHGSrZtL9Q07Xwg5OeklGM5lwMAPieEGBrj3m74vn9rY8oagLcWCoWPTVG+hZZl3UlEDzHGMgCQy+VytVrNRHhSPDLFfqYFHgSBk8vlhnp7e/uz2exgqVT6muM4H0VDptBU+pFSdtTr9R9alvUigGsYY60AYFmWlc/niwh9lQuFEHtk8kTk5R7xn/7+fhfAHZZlXQ1gLYC067o3MMbStm1bMSMyCn0APh855hPi0EMPfZqI9IYiZlnWNyzLuhDjH7vctu1P27a9lTF2BoAEAOTz+eFisVhGSIFdOkfBz1eA7dq164e5XG53EkYymWxauXLlCs55XUq5k4ieaWpqeoIxZgPgRKQA4L7vL/J9XwBYzTlfgdDR3O1AExEVi8XC8PBwgYj+BuArQogxU38j3+sWhCF5AMCBBx7YtmjRosUAfM65LaVsBqD09PRk6/X6aLK3F8AXRlt4E0HX9XcA+K/4WlVVZdWqVYcxxnZyzn+iadpfgyCY5zjOyYyxTs75EUS0EJEigyDwc7nccETqdiNchMZUx58u2ObNmxcB+G+E5i0AYMWKFUvT6XTLTDqUUsp6vV4rFArFKGL6JwDfnsxX0XW9FWFm09q4rK2tbWFbW1t7fExVq1Wjt7e3MbGREPppN8Y83nSg6/pnAJwfX2cymdYlS5YsicaTCI2UPQwVIqJKpTIyNDSUD4LABvBzAHcIIezpjj8dMCKCrusHIXxWHBbfWLBgwfx58+a1NDc3p1RVnZBq8jzPcxzHrtVqtZGRESMIAh/A4wDuEkJsnepkdF3XEPpd/xKXNTc3J1taWtLJZLJpeHg47zhOTAU9hzDQ9/zUxR1zzIsAfCK+zmQy89ra2tpHBTfheZ5n27bVsACfRcimTJn2mg12U0i6rqsAPgzgXESZNDGampq05ubmJoSrK47OIwiCwLIsJwiC2HkcAfAgQstuwgf6eIicz1MBfBDAWIZNFcB1AB6eZsh8ojHPBHAeIrkZY2hpaUlrmpbwfd8fxZbnAFwvhHhsnO72Csbk+nRdX4KQGT82+h2E8JiJfxKAjzAG80L8E0LMab51uVz+vmVZZ4yMjFQi0hUArhRC/HYuxwEAXdcTAE4D8BGEgcyYbfABDAPYCOAJAM++GpTTnJOycwUp5SrXdZ8G0Lxr165dUbrX8wDOm6udNBGiZyYDYOyL8SbD/qooZlnW44yxdbVarZrNZvsQ7uLzhBCjndV/CuxVUnamsG37XMaYkFLKwcHBmO757T+rkoD9U1ELAXwHYU5DzGhUMMfpV/sITNf1NevXr08CwNatWzMz7Wi/U5RlWd8HsNh1XTfO0gXwo7lwJrdu3bpi06ZNM85JnC66u7sTAH6WSqWWbdq06cQgCH6DUHnzdV1/+3T62q8U5fv+iYyx04EwxTjyA7oBjGnl6bq+Ow60fv16taE8MVadIAgu5Jy/t7GP7du3N2GMv0N3d7c21v8nm8d4bXp6ejaoqvpxhO7Nu4joq6PbxDtvjP4T+5Mxodm2vQHAqmq1Wu3t7Z3QgNi8efNNnHMC8CwRZQFcvmPHjlOPPvpoxTTNBxhjZwH4BsJUAJ0xthHAVURkI3yv68aurq5LiagdwLFEdFlnZ+dmXdc3EtEfGWNHIPQLtxHR2xhjBuf8P4477rjdL4Z3dXUdLqX8Iue8VUrpZzKZL1mWlXJd9zKEL6C/xBg7MwiCsznnbYyxqwGcDOA2hOTCk4qiXCOl7CCis4iozjkfcRznGk3TlgC4G8D/Mcba9psdZdv2VwAcEQUEJzQgohXcQUTPdHR0/BLABgBYuXLliaZpvocxtnHHjh01AMcT0VYhxG0dHR1/I6JuAE8JIW7UdX0NEZ0aBMHNRPQgY+zcuH/O+TPVavWTAI5ljNmdnZ0fQ5gp29k4DyI6F8Ag5/wqxtgB1Wr1BNd1TwWwUAjxWQDrR89dCOER0X1EVBZC/PvatWsNAJcQ0W2dnZ1fllIenkgkTonrM8Y2JhKJi/YXRS1jjF0MgBWLxUJkQBgAfjRW5SjEfymAz+m6fnaD8Kcxxj4UBMEvzzjjjADAJQDO6OrqanzdNM50XcUY46qqnsI5d4lod+JkEAR9J510kk1EVcbYDoROfplzPm/UVI5kjC2XUp7MGHtYSjkMYA1CkhiapvVMJvimTZvaiaidMbYLABhjfYyxY3dPlrE/r1mzprxfKMq27ZuJaJ7rum5DQPAmIcRY4Qx0d3drUTLnzQjfn4WiKPcDeDsRyeOPP/6le++9V0GYrnYtEX0oalpB+CkCHgTBIwASUsrniegXQRBsGGusiUBEDxFRs+/79wVB8IdqtdrDGNtERMdt3bo14/v+KWO1UxRlhDGW6e7u1tatW5cD8BwRndjd3d0CYA1jbHdMS0rpAvuBMeG67ocAvAOYmgEBAJZlLZJSfhbAyUR0AwBEz44eIvoVACxfvjxDRJ8gotOJ6DoA4JzfByCt6/q3TjjhBIMxdgnn/MMArlJVNc4F7FIUpQYAjLG/SiljVv55ItrjwyWMsfs4509yzq9ljH1y/vz5C5PJ5O8453cHQfCdaJd0McYsxpiB8O1KmKa5BcCjlmXdoOv6UgCXc84PsyzrSgA/7ujo2Mg5twB0JRIJH3j1mYl5tm13AVjSEMIghAbEtFjxLVu2rCaib3Z0dJyD196neybFjDJl5wq2bV8N4KAxGIhpKWnz5s2fYYy9W0p5JV6HSgJeRUW5rvsRAGcDYIVCYTgKIxiYAQORSqXuXr169e2T13zt4lU5+ojoUMdx/gIgY5pmfefOnXHw7VIhxOP7fEKvAbwaxkST4zi/BpAJgiDo6+uLk1F+/YaSxsc+V5RlWT8AcDQADAwMDERHXjfCVIA3MA72qaJs2z6TMXY2AFYul0tRMLCGMGFyzj7w9HrEPlOU53lHItw1quM49uDgYJza9Z9zHcJ/PWKfKCoIgmW+7/8BUVZuX19ff+TY3rOvk0Req9jr5rnv+wd6nvcoY+yA6GNOA9EL0S8i/CLXG5gC9uqOCoJgoeu6jzHGDgaA4eHh3MjISBVh+vHFr4UXyPYX7E1FzXMc57Eo3RnFYrFQKBTKCPPizhdC7M8f/N3vsNcUVa1WH+KcrwKAOAUY4ZcnzxdCDE7c+g2Mxl5TVKFQeEJKKWu1WrW/v38QIT10wb5KAX69Ya9SSDt27PhxpVI5XkpZQ7iT/mnTvWaLvWpMlMvlC6WUjwC46A0lzQ7/D561R9Zv9ny+AAAAAElFTkSuQmCC");
}

?>